<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
<script>
    // - 一个关键字, 一个内置的引用变量
    // {
    //     // 不需要定义，可以直接使用
    //     console.log(this);
    //     function fn(){
    //         console.log(this);
    //     }
    //     fn();
    // }
    // - 在函数中都可以直接使用this
    // - this代表调用函数的当前对象
    // function fn(){
    //     console.log(this);// window
    // }
    // fn();

    // const obj = {
    //     fn(){
    //         console.log(this);
    //     }
    // }
    // obj.fn();// obj
    // const fn2 = obj.fn;
    // fn2();

    // 严格模式
    // "use strict"
    // function fn(){
    //     console.log(this);// undefined
    // }
    // fn();
    //
    // const obj = {
    //     fn(){
    //         console.log(this,this === obj);
    //     }
    // }
    // obj.fn();
    // const fn2 = obj.fn;
    // fn2();

    // * 在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)。（函数当中的this是由执行时的环境决定的）
</script>
</html>